package com.wg.msuser.controller;

import com.wg.msuser.service.SimpleLocationService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;

/**
 * 高德地图位置服务控制器
 * 提供IP定位、地址解析和逆地址解析功能
 */
@RestController
@RequestMapping("/user/gaode")
@RequiredArgsConstructor
public class SimpleLocationController {
    // 注入位置服务
    private final SimpleLocationService locationService;

    /**
     * 根据IP地址获取地理位置信息
     * @param ip IP地址
     * @return 位置信息JSON字符串
     * @throws IOException 网络请求异常
     */
    @GetMapping("/ip/{ip}")
    public String getByIp(@PathVariable("ip") String ip) throws IOException {
        return locationService.ipLocation(ip);
    }

    /**
     * 根据地址获取地理坐标信息
     * @param address 地址信息
     * @return 地理坐标JSON字符串
     * @throws IOException 网络请求异常
     */
    @GetMapping("/address/{address}")
    public String getByAddress(@PathVariable("address") String address) throws IOException {
        return locationService.addressToLocation(address);
    }

    /**
     * 根据经纬度坐标获取地址信息
     * @param lng 经度
     * @param lat 纬度
     * @return 地址信息JSON字符串
     * @throws IOException 网络请求异常
     */
    @GetMapping("/coordinate")
    public String getByCoordinate(
            @RequestParam double lng,
            @RequestParam double lat) throws IOException {
        return locationService.locationToAddress(lng, lat);
    }
}
